ENTRY(start)
STARTUP(obj/boot/boot.o)

STACK_SIZE = 0x10000;

SECTIONS
{
    . = 0x80000000;

    .code ALIGN(0x1000) : AT(ADDR(.code) - 0x7FF00000)
    {
        _code = .;
        *(.text*);
        . = ALIGN(4096);
    }

    .data ALIGN(0x1000) : AT(ADDR(.data) - 0x7FF00000)
    {
        _data = .;
        *(.data);
        *(.rodata);
        . = ALIGN(4096);
    }

    .bss ALIGN(0x1000) : AT(ADDR(.bss) - 0x7FF00000)
    {
        _bss = .;
        *(.bss);

        . = ALIGN(0x1000);
        _stack = .;
        . += STACK_SIZE;
        _stack_top = .;
    }

    . = ALIGN(4096);
    _end = .;
}
